package com.kaifamiao.date1109;

/**
 * 1、在类中声明的被static修饰符所修饰的成员(member)是属于类的
 * 2、被static修饰的代码块俗称"静态代码块"，在Java语言规范中被称作 StaticInitializer
 *    这里将StaticInitializer翻译成 "类初始化器" 或 "类初始化块"
 * 3、被static修饰的就是与类相关的、属于类的
 */
public class Father {
	
	public static int first ;
	public static String second ;
	// public static double third 用于声明一个类变量
	// = 3.14 属于初始化语句(在初始化类时执行)
	public static double third = 3.14 ; 
	
	static {
		System.out.println( "初始值: " + third );
	}
	
	// StaticInitializer,类初始化器(类初始化块)
	// 用于初始化类变量(即为类变量赋予初始值)
	static {
		System.out.println( "默认值: " + first );
		first = 100 ;
		System.out.println( "初始值: " + first );
	}
	
	// 同一个类中存在多个 类初始化器 时 按照源代码中的顺序依次执行
	static {
		System.out.println( "默认值: " + second );
		second = "老二" ;
		System.out.println( "初始值: " + second );
	}
	
	// 含 public static void main( String[] ) 方法的类被称作启动类(launcher)
	// 启动类可以直接被 JVM 加载并执行其中的 main 方法 ( Father.main )
	public static void main(String[] suibian) {
	}

}
